    
var fs = require('fs');
var path = require('path');
var dirname = path.resolve(__dirname, './myFile/1.txt');

// 创建文件可读流
async function test() {
    // 每次读取一个字节
    // 分批读取文件 可以减少内存占用
    // highWaterMark: 1 读取的字节数
    // encoding: 'utf8' 读取的编码格式
    // autoClose: true 读取完毕后自动关闭
    const stream = fs.createReadStream(dirname, { highWaterMark: 1, encoding: 'utf8', autoClose: true })
    stream.on('open', (fd) => {
        console.log('open', '文件打开', fd)
    })
    stream.on('data', (chunk) => {
        console.log(  chunk.toString())
    })
    stream.on('end', () => {
        console.log('end'  ,'文件读取完毕')
    })
    stream.on('close', () => {
        console.log('close','文件关闭')
    })
    stream.on('error', (err) => {
        console.log(err)
    })
    
}
// test()

// 创建文件可写流
async function test2() {
    // 每次写入一个字节
    // 分批写入文件 可以减少内存占用
    // highWaterMark: 1 写入的字节数
    // encoding: 'utf8' 写入的编码格式
    // autoClose: true 写入完毕后自动关闭
    const ws = fs.createWriteStream(dirname, { highWaterMark: 1, encoding: 'utf8', autoClose: true })
    ws.on('open', (fd) => {
        console.log('open', '文件打开', fd)
    })
    ws.write('hello')
    ws.write('world')
    ws.end()
    ws.on('finish', () => {
        console.log('finish', '文件写入完毕')
    })
    ws.on('close', () => {
        console.log('close', '文件关闭')
    })
    ws.on('error', (err) => {
        console.log(err)
    })
}
test2()